1
SIMT 執行模型與瓦片分割
AI032Lesson 6
00:00

SIMT(單一指令、多線程) 模型是 GPU 架構的核心。雖然您撰寫的是單個線程,但硬體會將它們協調成兩層階層的「網格」與「區塊」。 網格區塊。為了最大化效率,硬體會進一步將這些區塊分割為每單位 32 個線程的「瓦片」。 瓦片

1. SIMT 與 SIMD 比較

與 CPU 的 SIMD(如 SSE/AVX)不同,後者需手動將資料打包至暫存器;SIMT 允許線程在軟體層面上表現為獨立。硬體會自動將線程分組成瓦片,並同時為全部 32 個線程取得同一條指令,以同步執行。

2. 線性化規則

程式設計師使用 threadIdx.x, y, z 進行邏輯運算,但硬體會將其轉換為一維序列以進行排程:

索引值 = x + (y × blockDim.x) + (z × blockDim.x × blockDim.y)
2D 區塊(8 × 8)瓦片 0:編號 0–31瓦片 1:編號 32–63

由於 x 維度 是變化最快的索引,因此具有連續 threadIdx.x 值的線程通常會落在同一個瓦片中,這對於 記憶體合併

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>